#ifndef _CRITERIA_H_
#define _CRITERIA_H_

template
<
    typename ResultType,
    typename System,
    typename ... Args
>
class Criteria
{
public:
    typedef ResultType ResultType;
    
    virtual ResultType operator()(const System& system) = 0;
};

#endif // _CRITERIA_H_
